Network communication occurs through the transmission of data between computing devices in a network. Data is typically divided into units before transmission to facilitate the communication process. The larger the data units, the faster and more efficient the communication. Each computing device and network has a maximum data unit size, known as a maximum transmission unit (MTU), that it can receive and transmit. The path maximum transmission unit (PMTU) is the MTU that can be successfully sent between a source device and a destination device and depends on the MTU of each computing device and network feature in the path from source to destination. For example, if both a source host and destination host each have an MTU of 9162 bytes, but one device in the path between the source and the destination can only receive and transmit data units of 1518 bytes or less, the PMTU for that path is 1518 bytes.
Because it is the largest data unit size that can be successfully transmitted from a particular source to a particular destination, the PMTU is the optimal data unit transmission size. PMTU, however, is not easily determined, and most network devices currently transmit data units of a small, default size rather than risk transmitting a data unit larger than the PMTU and having the data discarded or lost. While defaulting to a small MTU size greatly increases the likelihood that a particular transmission will be successful, in many cases the default MTU size is smaller than the PMTU, resulting in slower, less efficient transmission than is possible.
Another current strategy for handling an unknown PMTU is to provide two different physical interfaces. One interface handles large MTU networks and the other handles default MTU networks. In such a system, a list of destinations with a large PMTU must be maintained. Additionally, changes in the path for a destination listed as “large PMTU,” for example, insertion of a small MTU device, may cause transmission of large data units to fail at the small MTU device even though the destination was previously known to be large PMTU. This approach increases communication complexity and overhead, can still result in failed communication, and significantly increases cost.
A third strategy currently implemented is to transmit data using large MTUs and rely on returned error messages to identify and communicate the MTU of devices in the path. This is typically done through internet control message protocol (ICMP) error messages. ICMP error messages indicate that the data required fragmentation and should be retransmitted at a lower MTU. However, because ICMP error messages can pose a security risk, many networks and hosts block ICMP error messages, thereby preventing communication of the MTU of devices in a particular path.